package com.qingzhou.web.repository.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import com.qingzhou.common.web.domain.BaseEntity;
import com.qingzhou.web.service.impl.convert.DictConverter;
import com.qingzhou.web.service.impl.convert.DictParent;
import com.qingzhou.web.service.impl.convert.TestItemConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 随访信息 对象
 * @author xm
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(value = "edc_visit")
public class VisitEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @Id
    private Long id;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "患者编号")
    private String patientCode;

    @ApiModelProperty(value = "随访时间")
    @DateTimeFormat("yyyy年MM月dd日")
    private Date followTime;

    @ApiModelProperty(value = "检查时间", notes = "字典 test_time_dict")
    @DictParent("test_time_dict")
    private String testTime;

    @ApiModelProperty(value = "是否复发", notes = "字典 patient_is_relapse")
    @DictParent("sys_yes_no")
    private String relapse;

    @ApiModelProperty(value = "随访状态", notes = "字典 patient_status")
    @DictParent("patient_status")
    private String patientStatus;

    @ApiModelProperty(value = "无病生存期 (DFS)")
    private String dfs;

    @ApiModelProperty(value = "生存情况", notes = "字典 sys_life_status")
    @DictParent("sys_life_status")
    private String lifeStatus;

    @ApiModelProperty(value = "死亡时间")
    @DateTimeFormat("yyyy年MM月dd日")
    private Date deathTime;

    @ApiModelProperty(value = "死亡原因")
    private String deathReason;

    @ApiModelProperty(value = "总生存期 (OS)")
    private String os;

    @ApiModelProperty(value = "治疗前生活质量评分")
    private String preLifeEvaluation;
    @ApiModelProperty(value = "治疗后生活质量评分")
    private String postLifeEvaluation;

    @ApiModelProperty("数据检查原因")
    private String editReason;

    @ApiModelProperty("终止原因")
    private String stopReason;

    @ApiModelProperty(value="手术并发症", notes = "字典 surgical_complication_dict")
    @DictParent("surgical_complication_dict")
    private String surgicalComplications;

    @ApiModelProperty("手术并发症其他时的明细")
    private String otherComplications;

    @ApiModelProperty("复发/转移诊断日期")
    @DateTimeFormat("yyyy年MM月dd日")
    private Date recurrenceMetastasisDate;

    @ApiModelProperty(value = "是否获得非手术病理", notes = "字典 sys_yes_no")
    @DictParent("sys_yes_no")
    private String hasBiopsyPathology;
}
